package io流.文件操作;

import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

//1在F:\Java\项目\高级Api使用\src\io流\文件操作\创建一个叫做IO.txt的文件  判断是否存在如果有删除重新创建
//2打印文件的绝对路径，相对路径，名字
//3 创建时间对象  定制时间格式   保存在一个变量中
//4利用字节io打开保存字符串
//5利用字符io打开保存字符串
public class Io_practice {
    public static void main(String[] args) {
        File file=new File("F:\\Java\\项目\\高级Api使用\\src\\io流\\文件操作\\IO.txt");
        Scanner input = new Scanner(System.in);
        System.out.println(file.exists());
//        字节输入流
        InputStream inputStream =null;
//        字节输出流
        OutputStream outputStream = null;
//        字符io输入流
        Reader reader=null;
//        字符io输出流
        Writer writer=null;
        try {



            //判断文件是否存在 与创建文件
            if (file.exists()==true){
                System.out.println("文件已经存在！先删除文件再重新创建！按回车继续");
//                System.in.read();

                System.out.println("删除文件中......");
                System.out.println("是否已经删除："+file.delete());
                System.out.println("重新创建文件中......");
                file.createNewFile();
                System.out.println("文件是否成功创建："+file.exists());
            }else {
                System.out.println("文件不存在！将会重新创建");
                System.out.println("正在创建文件.....");
                file.createNewFile();
                System.out.println("文件是否创建成功："+file.exists());
            }





            //打印文件的基本信息
            System.out.println("-------文件的基本信息-------");
            System.out.println("文件的名字：    "+file.getName());
            System.out.println("文件的相对路径："+file.getPath());
            System.out.println("文件的绝对路径："+file.getAbsolutePath());
            System.out.println("文件的大小：    "+file.length());





            //创建时间对象
            Date data=new Date();
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH-mm:ss");
            String now = format.format(data);
            System.out.println("当前时间为："+now);




            //利用字节io存入文件信息
            outputStream =new FileOutputStream(file,true);
            System.out.println("开始利用字节io存入信息......");
            byte[] words = ("利用字节io存入信息"+now+"\n").getBytes();
            outputStream.write(words,0,words.length);
            System.out.println("利用字节io存入信息成功");






            //利用字节io输出信息
            inputStream =new FileInputStream(file);
            System.out.println("开始利用字节io读取文件信息.....");
            System.out.println("文件内容如下：");
            int a;
            while ((a=inputStream.read())!=-1){
                System.out.print((char)a);
            }




            //利用字符io输入信息
            writer = new OutputStreamWriter(outputStream);
            writer=new BufferedWriter(writer);
            System.out.println("开始利用字符io输入信息....");
            String b="2222利用字符io输入信息:"+now;
            writer.write(b);
            writer.flush();
            System.out.println("写入信息成功");









         //利用字符io读取信息

            inputStream= new FileInputStream(file);
            reader = new InputStreamReader(inputStream,"utf-8");
            reader =  (BufferedReader) new BufferedReader(reader);
            reader = (BufferedReader)reader;
            System.out.println("开始利用字符io读取文件里面的信息.........");
            String v=null ;
            while ((v=((BufferedReader) reader).readLine())!=null){
                System.out.println(v);
            }











        }catch (IOException e){
            e.printStackTrace();
        } finally {
            try {
               writer.close();
                reader.close();
                inputStream.close();
                outputStream.close();



            } catch (IOException e) {
                e.printStackTrace();
            }

        }

















    }
}
